#ifndef VISITOR_H_
#define VISITOR_H_

#include <plc2llvm/Visitor/PLCSTParserBaseVisitor.h>

class Visitor : public plcst::PLCSTParserBaseVisitor {
public:
    Visitor();

    ~Visitor() override;

    std::any visitProg_Decl(plcst::PLCSTParser::Prog_DeclContext *ctx) override;

    std::any visitFunc_Decl(plcst::PLCSTParser::Func_DeclContext *ctx) override;

    std::any visitVar_Decls(plcst::PLCSTParser::Var_DeclsContext *ctx) override;

    std::any visitVar_Decl_Init(plcst::PLCSTParser::Var_Decl_InitContext *ctx) override;

    std::any visitVariable_List(plcst::PLCSTParser::Variable_ListContext *ctx) override;

    std::any visitVariable_Name(plcst::PLCSTParser::Variable_NameContext *ctx) override;

    std::any visitSimple_Spec_Init(plcst::PLCSTParser::Simple_Spec_InitContext *ctx) override;
};


#endif